using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Numerics;
using Nethereum.Hex.HexTypes;
using Nethereum.ABI.FunctionEncoding.Attributes;
using Nethereum.RPC.Eth.DTOs;
using Nethereum.Contracts.CQS;
using Nethereum.Contracts;

namespace Nethereum.Mud.Contracts.World.Modules.Unstable_DelegationWithSignatureModule.ContractDefinition
{


    public partial class UnstableDelegationwithsignaturemoduleDeployment : UnstableDelegationwithsignaturemoduleDeploymentBase
    {
        public UnstableDelegationwithsignaturemoduleDeployment() : base(BYTECODE) { }
        public UnstableDelegationwithsignaturemoduleDeployment(string byteCode) : base(byteCode) { }
    }

    public class UnstableDelegationwithsignaturemoduleDeploymentBase : ContractDeploymentMessage
    {
        public static string BYTECODE = "0x60c0604081905230608052620000159062000053565b604051809103906000f08015801562000032573d6000803e3d6000fd5b506001600160a01b031660a0523480156200004c57600080fd5b5062000061565b6126e4806200281f83390190565b60805160a05161279862000087600039600061032b0152600061023a01526127986000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c806345ec93541161005057806345ec9354146100e15780637c5b0335146100f4578063e1af802c1461010757600080fd5b806301ffc9a714610077578063119df25f1461009f57806313861fb5146100cc575b600080fd5b61008a61008536600461213d565b61010f565b60405190151581526020015b60405180910390f35b6100a76101f4565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610096565b6100df6100da366004612195565b610203565b005b604051601f193601358152602001610096565b6100df610102366004612195565b610235565b6100a7610542565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f6fdd1c800000000000000000000000000000000000000000000000000000000014806101a257507fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000145b806101ee57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101fe61054c565b905090565b6040517fea8b184c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61025f7f00000000000000000000000000000000000000000000000000000000000000008261057e565b6000610269610542565b90506102736105c3565b6040517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f44656c65676174696f6e00000000000000000000000000000000000000000000603083015290819073ffffffffffffffffffffffffffffffffffffffff8416908190633350b6a990603a0160405160208183030381529060405261030990612246565b604051602481019190915273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660448201526001606482015260840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103a7925061228e565b600060405180830381855af49150503d80600081146103e2576040519150601f19603f3d011682016040523d82523d6000602084013e6103e7565b606091505b5091509150816103fa576103fa8161065e565b6040517f73790000000000000000000000000000000000000000000000000000000000006020820152600060228201527f44656c65676174696f6e00000000000000000000000000000000000000000000603082015273ffffffffffffffffffffffffffffffffffffffff8416908190636548a90a90603a0160405160208183030381529060405261048b90612246565b60405160240161049b91906122aa565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516104e8925061228e565b600060405180830381855af49150503d8060008114610523576040519150601f19603f3d011682016040523d82523d6000602084013e610528565b606091505b5090925090508161053c5761053c8161065e565b50505050565b60006101fe610666565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061057b5750335b90565b6105888282610670565b156105bf576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b61065c7f746200000000000000000000000000005573657244656c65676174696f6e4e6f7e200100200000000000000000000000000000000000000000000000000000007e140100610000000000000000000000000000000000000000000000000000007e2001001f00000000000000000000000000000000000000000000000000000061064f61068a565b61065761070f565b610786565b565b805160208201fd5b60006101fe610c28565b6000610683838380519060200120610c74565b9392505050565b604080516001808252818301909252606091816020015b60608152602001906001900390816106a15790505090506040518060400160405280600981526020017f64656c656761746f72000000000000000000000000000000000000000000000081525081600081518110610701576107016123c1565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816107265790505090506040518060400160405280600581526020017f6e6f6e636500000000000000000000000000000000000000000000000000000081525081600081518110610701576107016123c1565b7f7462000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000161480159061081a57507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b1561089f577f7462000000000000000000000000000000000000000000000000000000000000868760405160200161085491815260200190565b60408051601f19818403018152908290527f31b46683000000000000000000000000000000000000000000000000000000008252610896939291600401612403565b60405180910390fd5b6108a885610d53565b6108b3846001610f9a565b6108be836000610f9a565b60e084901c60e885901c0160ff1682511461091e5760e084901c60e885901c0160ff1682516040517f0f72cb9800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b60e085901c60e886901c0160ff1681511461097e5760e085901c60e886901c0160ff1681516040517f7dec4c0000000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff16146109f65760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d8800000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b6109ff8561113f565b610a088461113f565b14610a5a57610a168561113f565b610a1f8461113f565b6040517f65cc0adf00000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b610a6385611171565b610a6c84611171565b14610abe57610a7a85611171565b610a8384611171565b6040517fedea958700000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b60005b610aca8661113f565b811015610b6557610af4610ade858361118e565b60c5811115610aef57610aef612444565b6111af565b6008601b8390030287901c60ff1614610b5d576008601b8290030286901c60ff16610b22610ade868461118e565b6040517f254c7db400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610896565b600101610ac1565b50610b6f8661120f565b15610bc9578586604051602001610b8891815260200190565b60408051601f19818403018152908290527fdfaaf9cf000000000000000000000000000000000000000000000000000000008252610896929160040161245a565b610c158686868686604051602001610be19190612473565b60405160208183030381529060405286604051602001610c019190612473565b6040516020818303038152906040526112b4565b610c20866001611397565b505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610c6f573391505090565b919050565b604080516002808252606082018352600092839291906020830190803683370190505090508373ffffffffffffffffffffffffffffffffffffffff1660001b81600081518110610cc657610cc66123c1565b6020026020010181815250508281600181518110610ce657610ce66123c1565b60209081029190910101526000610d3e7f7462776f726c64000000000000000000496e7374616c6c65644d6f64756c657383837e01010001000000000000000000000000000000000000000000000000000000611455565b9050610d4a8160f81c90565b95945050505050565b80610d8a576040517fa019e4da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d9582611171565b90506005811115610ddc576040517f6793df620000000000000000000000000000000000000000000000000000000081526004810182905260056024820152604401610896565b6000610de78361113f565b90506000610df5838361250b565b9050601c811115610e3c576040517fecd893b900000000000000000000000000000000000000000000000000000000815260048101829052601c6024820152604401610896565b6000805b83811015610ee75760ff601b82900360080287901c166000819003610e94576040517f53b2dd0500000000000000000000000000000000000000000000000000000000815260048101839052602401610896565b6020811115610ed2576040517f7237f23700000000000000000000000000000000000000000000000000000000815260048101839052602401610896565b610edc818461250b565b925050600101610e40565b50610ef18561152c565b8114610f3d57610f008561152c565b6040517feba964de000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610896565b825b601c811015610c205760ff601b82900360080287901c168015610f91576040517f1d8d44db00000000000000000000000000000000000000000000000000000000815260048101839052602401610896565b50600101610f3f565b80158015610fa6575081155b15610fc75760405163d498615960e01b815260006004820152602401610896565b6000610fd283611171565b90506005811115610ff95760405163d498615960e01b815260048101829052602401610896565b60006110048461113f565b90506000611012838361250b565b9050601c8111156110395760405163d498615960e01b815260048101829052602401610896565b6000805b838110156110a5576000611054610ade898461118e565b905080600003611090576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61109a818461250b565b92505060010161103d565b506110af8661152c565b81146110da576110be8661152c565b60405163d498615960e01b815260040161089691815260200190565b825b828110156111365760006110f3610ade898461118e565b9050801561112d576040517ff44b422000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016110dc565b50505050505050565b6000600860016111516002602061251e565b61115b919061251e565b6111659190612531565b8260ff911c1692915050565b600060086001806111846002602061251e565b611151919061251e565b6000601b8290036008028360ff911c1660c581111561068357610683612444565b6000808260c58111156111c4576111c4612444565b60ff16905060618110156111de57601f1660010192915050565b60618360c58111156111f2576111f2612444565b036112005750601492915050565b50600092915050565b50919050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486123c1565b602090810291909101015260006112a07f746273746f72650000000000000000005265736f75726365496473000000000083837e0101000100000000000000000000000000000000000000000000000000000061154f565b90506112ac8160f81c90565b949350505050565b6040805160208101879052808201869052606080820186905282518083039091018152608090910190915260006112eb848461157c565b905060006112f98585611599565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611333576113336123c1565b602090810291909101015261138b7f746273746f72650000000000000000005461626c657300000000000000000000828686867e600302202020000000000000000000000000000000000000000000000000006115c5565b50505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106113cd576113cd6123c1565b6020026020010181815250506114507f746273746f72650000000000000000005265736f75726365496473000000000060001b8260008560405160200161141b91151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118fe565b505050565b600080611460610c28565b90503073ffffffffffffffffffffffffffffffffffffffff8216036114935761148b8686868661154f565b9150506112ac565b6040517f8c364d5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690638c364d59906114eb908990899089908990600401612584565b602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148b91906125b3565b6000600861153c6002602061251e565b6115469190612531565b9190911c919050565b6000610d4a61155e868661191a565b60ff858116601b0360080285901c166115778587611970565b6119a9565b8151815160009181810160389190911b1760609190911b17610683565b606082826040516020016115ae9291906125cc565b604051602081830303815290604052905092915050565b7f6f74000000000000000000000000000000000000000000000000000000000000867fffff000000000000000000000000000000000000000000000000000000000000160361165157857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98686868660405161164494939291906125fb565b60405180910390a2610c20565b600061165c876119fa565b905060005b815181101561173557600082828151811061167e5761167e6123c1565b602002602001015190506116aa6001826affffffffffffffffffffff1916611a8390919063ffffffff16565b1561172c576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c906116f9908c908c908c908c908c908c90600401612645565b600060405180830381600087803b15801561171357600080fd5b505af1158015611727573d6000803e3d6000fd5b505050505b50600101611661565b50867f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a98787878760405161176c94939291906125fb565b60405180910390a26000611780888861191a565b90506000602087019050611798826000895184611aa1565b60006117a385611171565b11156118275760006117b58a8a611b60565b878155905060208601915060008060005b6117cf88611171565b8160ff161015611822576117e48d8d83611bb6565b92506117ff8a8260ff166028026038011c64ffffffffff1690565b915061180e8360008488611aa1565b611818828661250b565b94506001016117c6565b505050505b60005b835181101561138b576000848281518110611847576118476123c1565b602002602001015190506118736002826affffffffffffffffffffff1916611a8390919063ffffffff16565b156118f5576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118c2908e908e908e908e908e908e90600401612645565b600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b505050505b5060010161182a565b611913858561190d8487611970565b85611c36565b5050505050565b6000828260405160200161192f92919061269e565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156119a15761199760ff601b83900360080287901c168361250b565b9150600101611975565b509392505050565b6000602082106119cf576020820484019350602082816119cb576119cb6126da565b0691505b508254600882021b6020829003808411156119a1576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a3457611a346123c1565b60209081029190910101526000611a6c7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611ed1565b90506112ac611a7e8260008451611f0b565b611f99565b60008160ff1682611a948560581c90565b1660ff1614905092915050565b8215611b1b5760208310611acb57602083048401935060208381611ac757611ac76126da565b0692505b8215611b1b5760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611b0c57505061053c565b50600194909401939182900391015b5b60208210611b3d5780518455600190930192601f1990910190602001611b1c565b811561053c576000600019600884021c8554835182191691161785555050505050565b60008282604051602001611b7592919061269e565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611bcb92919061269e565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603611cc057837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051611cb3939291906126f0565b60405180910390a261053c565b6000611ccc858561191a565b90506000611cd9866119fa565b905060005b8151811015611dae576000828281518110611cfb57611cfb6123c1565b60200260200101519050611d276004826affffffffffffffffffffff1916611a8390919063ffffffff16565b15611da5576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d72908b908b908b908b9060040161272d565b600060405180830381600087803b158015611d8c57600080fd5b505af1158015611da0573d6000803e3d6000fd5b505050505b50600101611cde565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be868686604051611de3939291906126f0565b60405180910390a2611dfe828565ffffffffffff1685611faa565b60005b8151811015611136576000828281518110611e1e57611e1e6123c1565b60200260200101519050611e4a6008826affffffffffffffffffffff1916611a8390919063ffffffff16565b15611ec8576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e95908b908b908b908b9060040161272d565b600060405180830381600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b505050505b50600101611e01565b60606112ac611ee1858585611bb6565b6000611f0685611ef18989611fc0565b9060ff166028026038011c64ffffffffff1690565b611fd3565b600081831180611f1b5750835182115b15611f58578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161089693929190612766565b60208401611f66848261250b565b90506000611f74858561251e565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006106838360156000611ff6565b61145083838351611fbb8560200190565b611aa1565b6000610683611fcf8484611b60565b5490565b60405160208101601f19603f84840101166040528282526119a185858584612071565b606060006120048560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161202a5761202a6126da565b04905060405193506020840160208202810160405281855260005b82811015612065578451871c825293870193602090910190600101612045565b50505050509392505050565b82156120f8576020831061209b57602083048401935060208381612097576120976126da565b0692505b82156120f85760208390036000818410156120be5750600019600884021c6120c8565b50600019600882021c5b8554600886021b8184511682198216178452508184116120e957505061053c565b50600194909401939182900391015b5b6020821061211a5783548152600190930192601f19909101906020016120f9565b811561053c576000600019600884021c8251865482191691161782525050505050565b60006020828403121561214f57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461068357600080fd5b634e487b7160e01b600052604160045260246000fd5b6000602082840312156121a757600080fd5b813567ffffffffffffffff808211156121bf57600080fd5b818401915084601f8301126121d357600080fd5b8135818111156121e5576121e561217f565b604051601f8201601f19908116603f0116810190838211818310171561220d5761220d61217f565b8160405282815287602084870101111561222657600080fd5b826020860160208301376000928101602001929092525095945050505050565b805160208083015191908110156112095760001960209190910360031b1b16919050565b60005b8381101561228557818101518382015260200161226d565b50506000910152565b600082516122a081846020870161226a565b9190910192915050565b81815260606020820152600061233960608301604481527f726567697374657244656c65676174696f6e576974685369676e61747572652860208201527f616464726573732c627974657333322c62797465732c616464726573732c627960408201527f7465732900000000000000000000000000000000000000000000000000000000606082015260800190565b82810360408401526112ac81604481527f726567697374657244656c65676174696f6e576974685369676e61747572652860208201527f616464726573732c627974657333322c62797465732c616464726573732c627960408201527f7465732900000000000000000000000000000000000000000000000000000000606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600081518084526123ef81602086016020860161226a565b601f01601f19169290920160200192915050565b7fffff00000000000000000000000000000000000000000000000000000000000084168152826020820152606060408201526000610d4a60608301846123d7565b634e487b7160e01b600052602160045260246000fd5b8281526040602082015260006112ac60408301846123d7565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156124e8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526124d68583516123d7565b9450928501929085019060010161249c565b5092979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ee576101ee6124f5565b818103818111156101ee576101ee6124f5565b80820281158282048414176101ee576101ee6124f5565b60008151808452602080850194506020840160005b838110156125795781518752958201959082019060010161255d565b509495945050505050565b84815260806020820152600061259d6080830186612548565b60ff949094166040830152506060015292915050565b6000602082840312156125c557600080fd5b5051919050565b600083516125de81846020880161226a565b8351908301906125f281836020880161226a565b01949350505050565b60808152600061260e6080830187612548565b828103602084015261262081876123d7565b9050846040840152828103606084015261263a81856123d7565b979650505050505050565b86815260c06020820152600061265e60c0830188612548565b828103604084015261267081886123d7565b9050856060840152828103608084015261268a81866123d7565b9150508260a0830152979650505050505050565b8281526000602080830184516020860160005b828110156126cd578151845292840192908401906001016126b1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006127036060830186612548565b65ffffffffffff85166020840152828103604084015261272381856123d7565b9695505050505050565b8481526080602082015260006127466080830186612548565b65ffffffffffff85166040840152828103606084015261263a81856123d7565b60608152600061277960608301866123d7565b6020830194909452506040015291905056fea164736f6c6343000818000a608060405234801561001057600080fd5b506126c4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806345ec93541161005057806345ec9354146100b4578063e1af802c146100c7578063fe1f8032146100cf57600080fd5b806301ffc9a71461006c578063119df25f14610094575b600080fd5b61007f61007a366004612101565b6100e4565b60405190151581526020015b60405180910390f35b61009c61017d565b6040516001600160a01b03909116815260200161008b565b604051601f19360135815260200161008b565b61009c61018c565b6100e26100dd3660046121fd565b610196565b005b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb5dee12700000000000000000000000000000000000000000000000000000000148061017757507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600061018761036d565b905090565b600061018761039f565b60006101a1836103a9565b905060006102d887878787866101b561018c565b604080517f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a7946921860208083019190915246828401526001600160a01b03938416606080840191909152835180840390910181526080830184528051908201208751978201979097207f0d2469d58e0c12bd7b0112fa00bf7fb8962152a8611ea2e056284a93d1b34ef560a084015298841660c083015260e082019790975261010081019790975292166101208601526101408086019190915281518086039091018152610160850182528051908401207f19010000000000000000000000000000000000000000000000000000000000006101808601526101828501929092526101a280850192909252805180850390920182526101c2909301909252815191012090565b905060006102e68285610436565b9050846001600160a01b0316816001600160a01b031614610343576040517fd855c4f40000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024015b60405180910390fd5b610357856103528560016122a2565b610460565b6103638589898961050d565b5050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061039c5750335b90565b6000610187610573565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b816000815181106103ee576103ee6122b5565b6020908102919091010152600061042e7f746200000000000000000000000000005573657244656c65676174696f6e4e6f8383630100080160dd1b6105b2565b949350505050565b600080600080610446868661066f565b92509250925061045682826106bc565b5090949350505050565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b816000815181106104a2576104a26122b5565b6020026020010181815250506105087f746200000000000000000000000000005573657244656c65676174696f6e4e6f60001b826000856040516020016104eb91815260200190565b60408051601f19818403018152919052630100080160dd1b6107c4565b505050565b610518848484610879565b6105218261094c565b1561056d57600061053183610968565b905061055d817f1a86b55000000000000000000000000000000000000000000000000000000000610a04565b61056a8584846000610a77565b50505b50505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b0316806105ad573391505090565b919050565b6000806105bd610573565b9050306001600160a01b038216036105e3576105db86868686610aa4565b91505061042e565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061062e908990899089908990600401612307565b602060405180830381865afa15801561064b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105db9190612336565b600080600083516041036106a95760208401516040850151606086015160001a61069b88828585610ada565b9550955095505050506106b5565b50508151600091506002905b9250925092565b60008260038111156106d0576106d061234f565b036106d9575050565b60018260038111156106ed576106ed61234f565b03610724576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156107385761073861234f565b03610772576040517ffce698f70000000000000000000000000000000000000000000000000000000081526004810182905260240161033a565b60038260038111156107865761078661234f565b036107c0576040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004810182905260240161033a565b5050565b60006107ce610573565b9050306001600160a01b038216036107f2576107ed8686868686610ba9565b61056a565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae09061083f90899089908990899089906004016123b5565b600060405180830381600087803b15801561085957600080fd5b505af115801561086d573d6000803e3d6000fd5b50505050505050505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b816000815181106108ba576108ba6122b5565b602002602001018181525050826001600160a01b031660001b816001815181106108e6576108e66122b5565b60200260200101818152505061056d7f7462776f726c640000000000000000005573657244656c65676174696f6e436f60001b8260008560405160200161092f91815260200190565b60408051601f19818403018152919052630100080160dd1b610ba9565b60008115158015610177575061096182610bc5565b1592915050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106109a1576109a16122b5565b602090810291909101015260006109f97f7462776f726c6400000000000000000053797374656d7300000000000000000083837e15020014010000000000000000000000000000000000000000000000000000610aa4565b60601c949350505050565b610a0e8282610c40565b6107c0576040517f74b5e6ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201527fffffffff000000000000000000000000000000000000000000000000000000008216602482015260440161033a565b6060600080610a8887878787610c63565b9150915081610a9a57610a9a81610e33565b9695505050505050565b6000610ad1610ab38686610e3b565b60ff858116601b0360080285901c16610acc8587610e91565b610eca565b95945050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610b155750600091506003905082610b9f565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610b69573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610b9557506000925060019150829050610b9f565b9250600091508190505b9450945094915050565b610bbe8585610bb88487610e91565b85610f1b565b5050505050565b604080517f737900000000000000000000000000000000000000000000000000000000000060208201526000602282018190527f756e6c696d69746564000000000000000000000000000000000000000000000060308301529101604051602081830303815290604052610c38906123fc565b909114919050565b6000610c4b836111bf565b8015610c5c5750610c5c8383611218565b9392505050565b600060606000610c72866112e8565b905060005b8151811015610d45576000828281518110610c9457610c946122b5565b60200260200101519050610cc06001826affffffffffffffffffffff191661137190919063ffffffff16565b15610d3c576040517fc3323031000000000000000000000000000000000000000000000000000000008152606082901c9063c332303190610d09908c908c908c90600401612423565b600060405180830381600087803b158015610d2357600080fd5b505af1158015610d37573d6000803e3d6000fd5b505050505b50600101610c77565b50610d528785888861138f565b909350915060005b8151811015610e28576000828281518110610d7757610d776122b5565b60200260200101519050610da36002826affffffffffffffffffffff191661137190919063ffffffff16565b15610e1f576040517f973d8f99000000000000000000000000000000000000000000000000000000008152606082901c9063973d8f9990610dec908c908c908c90600401612423565b600060405180830381600087803b158015610e0657600080fd5b505af1158015610e1a573d6000803e3d6000fd5b505050505b50600101610d5a565b505094509492505050565b805160208201fd5b60008282604051602001610e5092919061244b565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610ec257610eb860ff601b83900360080287901c16836122a2565b9150600101610e96565b509392505050565b600060208210610ef057602082048401935060208281610eec57610eec612487565b0691505b508254600882021b602082900380841115610ec2576001850154600882021c82179150509392505050565b7f6f74000000000000000000000000000000000000000000000000000000000000847fffff0000000000000000000000000000000000000000000000000000000000001603610fa557837f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be848484604051610f989392919061249d565b60405180910390a261056d565b6000610fb18585610e3b565b90506000610fbe866114ca565b905060005b8151811015611093576000828281518110610fe057610fe06122b5565b6020026020010151905061100c6004826affffffffffffffffffffff191661137190919063ffffffff16565b1561108a576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611057908b908b908b908b906004016124d0565b600060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505050505b50600101610fc3565b50857f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be8686866040516110c89392919061249d565b60405180910390a26110e3828565ffffffffffff168561153c565b60005b81518110156111b6576000828281518110611103576111036122b5565b6020026020010151905061112f6008826affffffffffffffffffffff191661137190919063ffffffff16565b156111ad576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba87219061117a908b908b908b908b906004016124d0565b600060405180830381600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050505b506001016110e6565b50505050505050565b60006111eb827f01ffc9a700000000000000000000000000000000000000000000000000000000611218565b80156101775750610961827fffffffff000000000000000000000000000000000000000000000000000000005b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d915060005190508280156112d1575060208210155b80156112dd5750600081115b979650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611322576113226122b5565b6020908102919091010152600061135a7f7462776f726c6400000000000000000053797374656d486f6f6b7300000000008383611552565b905061042e61136c826000845161158c565b61161a565b60008160ff16826113828560581c90565b1660ff1614905092915050565b6000606060008061139f8661162b565b90925090506001600160a01b0382166113f057856113bc876116e3565b6040517ffbf10ce600000000000000000000000000000000000000000000000000000000815260040161033a929190612509565b806113ff576113ff8689611820565b861561146b577dffffffffffffffffffffffffffff0000000000000000000000000000000086167f6e730000000000000000000000000000000000000000000000000000000000001760006114538261186c565b9050611468826114638b846122a2565b6118e5565b50505b60006114778760101b90565b7fffffffffffffffffffffffffffff00000000000000000000000000000000000016146114af576114aa88888488611964565b6114bb565b6114bb888884886119dc565b90999098509650505050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611504576115046122b5565b6020908102919091010152600061135a7f746273746f726500000000000000000053746f7265486f6f6b730000000000008383611552565b6105088383835161154d8560200190565b611a3d565b606061042e611562858585611afc565b6000611587856115728989611b7c565b9060ff166028026038011c64ffffffffff1690565b611b8f565b60008183118061159c5750835182115b156115d9578383836040517f23230fa300000000000000000000000000000000000000000000000000000000815260040161033a93929190612522565b602084016115e784826122a2565b905060006115f58585612547565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610c5c8360156000611bb2565b60408051600180825281830190925260009182918291602080830190803683370190505090508381600081518110611665576116656122b5565b6020908102919091010152600080806116be7f7462776f726c6400000000000000000053797374656d73000000000000000000857e15020014010000000000000000000000000000000000000000000000000000611c2d565b5050602081015160349091015160609190911c9860f89190911c975095505050505050565b606081601081901b60006116f683611d35565b9050827fffffffffffffffffffffffffffff0000000000000000000000000000000000008316156117515761174c7fffffffffffffffffffffffffffff0000000000000000000000000000000000008416611d4c565b611788565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156117be576117b983611d4c565b6117f5565b6040518060400160405280600681526020017f3c726f6f743e00000000000000000000000000000000000000000000000000008152505b6040516020016118079392919061255a565b6040516020818303038152906040529350505050919050565b61182a8282611df0565b6107c057611837826116e3565b816040517fd787b73700000000000000000000000000000000000000000000000000000000815260040161033a9291906125e8565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106118a5576118a56122b5565b6020908102919091010152600061042e7f7462776f726c6400000000000000000042616c616e63657300000000000000008383630100080160dd1b610aa4565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061191b5761191b6122b5565b6020026020010181815250506105087f7462776f726c6400000000000000000042616c616e636573000000000000000060001b8260008560405160200161092f91815260200190565b60006060836001600160a01b0316600061197f858989611e4e565b60405161198c9190612613565b60006040518083038185875af1925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b509097909650945050505050565b60006060836001600160a01b03166119f5848888611e4e565b604051611a029190612613565b600060405180830381855af49150503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b8215611ab75760208310611a6757602083048401935060208381611a6357611a63612487565b0692505b8215611ab75760208390036000600019600885021c1990506008850281811c91508351811c9050811987541682821617875550818411611aa857505061056d565b50600194909401939182900391015b5b60208210611ad95780518455600190930192601f1990910190602001611ab8565b811561056d576000600019600884021c8554835182191691161785555050505050565b60008383604051602001611b1192919061244b565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000610c5c611b8b8484611e7d565b5490565b60405160208101601f19603f8484010116604052828252610ec285858584611ed3565b60606000611bc08560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611be657611be6612487565b04905060405193506020840160208202810160405281855260005b82811015611c21578451871c825293870193602090910190600101611c01565b50505050509392505050565b6060600060606000611c3e85611f9f565b9050611c4b878783611fc2565b93506000611c5886611ffb565b90508015611d2a57611c6a8888611b7c565b935066ffffffffffffff841667ffffffffffffffff811115611c8e57611c8e61215a565b6040519080825280601f01601f191660200182016040528015611cb8576020820181803683370190505b5092506020830160005b828160ff161015611d27576000611cda8b8b84611afc565b90506000611cf7888460ff166028026038011c64ffffffffff1690565b9050611d068260008387611ed3565b611d1081856122a2565b935050508080611d1f9061262f565b915050611cc2565b50505b505093509350939050565b6000611d43607060106122a2565b9190911b919050565b606060005b6010811015611db1577fffffffffffffffffffffffffffffffff000000000000000000000000000000008316600882021b7fff000000000000000000000000000000000000000000000000000000000000001615611db157600101611d51565b604080517fffffffffffffffffffffffffffffffff0000000000000000000000000000000085166020820152815160309091019091528181528061042e565b6000611e3e7f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff0000000000000000000000000000000085161783612038565b80610c5c5750610c5c8383612038565b6060838383604051602001611e659392919061264e565b60405160208183030381529060405290509392505050565b60008282604051602001611e9292919061244b565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b8215611f5a5760208310611efd57602083048401935060208381611ef957611ef9612487565b0692505b8215611f5a576020839003600081841015611f205750600019600884021c611f2a565b50600019600882021c5b8554600886021b818451168219821617845250818411611f4b57505061056d565b50600194909401939182900391015b5b60208210611f7c5783548152600190930192601f1990910190602001611f5b565b811561056d576000600019600884021c8251865482191691161782525050505050565b60006008611faf60026020612547565b611fb991906126a0565b9190911c919050565b606081600003611fe15750604080516020810190915260008152610c5c565b6000611fed8585610e3b565b9050610ad181600085611b8f565b6000600860018061200e60026020612547565b6120189190612547565b6120229190612547565b61202c91906126a0565b8260ff911c1692915050565b604080516002808252606082018352600092839291906020830190803683370190505090508381600081518110612071576120716122b5565b602002602001018181525050826001600160a01b031660001b8160018151811061209d5761209d6122b5565b602090810291909101015260006120f57f7462776f726c640000000000000000005265736f75726365416363657373000083837e01010001000000000000000000000000000000000000000000000000000000610aa4565b9050610ad18160f81c90565b60006020828403121561211357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610c5c57600080fd5b80356001600160a01b03811681146105ad57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261218157600080fd5b813567ffffffffffffffff8082111561219c5761219c61215a565b604051601f8301601f19908116603f011681019082821181831017156121c4576121c461215a565b816040528381528660208588010111156121dd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561221557600080fd5b61221e86612143565b945060208601359350604086013567ffffffffffffffff8082111561224257600080fd5b61224e89838a01612170565b945061225c60608901612143565b9350608088013591508082111561227257600080fd5b5061227f88828901612170565b9150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b808201808211156101775761017761228c565b634e487b7160e01b600052603260045260246000fd5b60008151808452602080850194506020840160005b838110156122fc578151875295820195908201906001016122e0565b509495945050505050565b84815260806020820152600061232060808301866122cb565b60ff949094166040830152506060015292915050565b60006020828403121561234857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015612380578181015183820152602001612368565b50506000910152565b600081518084526123a1816020860160208601612365565b601f01601f19169290920160200192915050565b85815260a0602082015260006123ce60a08301876122cb565b60ff8616604084015282810360608401526123e98186612389565b9150508260808301529695505050505050565b8051602080830151919081101561241d576000198160200360031b1b821691505b50919050565b6001600160a01b0384168152826020820152606060408201526000610ad16060830184612389565b8281526000602080830184516020860160005b8281101561247a5781518452928401929084019060010161245e565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b6060815260006124b060608301866122cb565b65ffffffffffff851660208401528281036040840152610a9a8185612389565b8481526080602082015260006124e960808301866122cb565b65ffffffffffff8516604084015282810360608401526112dd8185612389565b82815260406020820152600061042e6040830184612389565b6060815260006125356060830186612389565b60208301949094525060400152919050565b818103818111156101775761017761228c565b7fffff0000000000000000000000000000000000000000000000000000000000008416815260007f3a0000000000000000000000000000000000000000000000000000000000000080600284015284516125bb816003860160208901612365565b8084019050816003820152845191506125db826004830160208801612365565b0160040195945050505050565b6040815260006125fb6040830185612389565b90506001600160a01b03831660208301529392505050565b60008251612625818460208701612365565b9190910192915050565b600060ff821660ff81036126455761264561228c565b60010192915050565b60008451612660818460208901612365565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b80820281158282048414176101775761017761228c56fea164736f6c6343000818000a";
        public UnstableDelegationwithsignaturemoduleDeploymentBase() : base(BYTECODE) { }
        public UnstableDelegationwithsignaturemoduleDeploymentBase(string byteCode) : base(byteCode) { }

    }

    public partial class MsgSenderFunction : MsgSenderFunctionBase { }

    [Function("_msgSender", "address")]
    public class MsgSenderFunctionBase : FunctionMessage
    {

    }

    public partial class MsgValueFunction : MsgValueFunctionBase { }

    [Function("_msgValue", "uint256")]
    public class MsgValueFunctionBase : FunctionMessage
    {

    }

    public partial class WorldFunction : WorldFunctionBase { }

    [Function("_world", "address")]
    public class WorldFunctionBase : FunctionMessage
    {

    }

    public partial class InstallRootFunction : InstallRootFunctionBase { }

    [Function("installRoot")]
    public class InstallRootFunctionBase : FunctionMessage
    {
        [Parameter("bytes", "encodedArgs", 1)]
        public virtual byte[] EncodedArgs { get; set; }
    }

    public partial class SupportsInterfaceFunction : SupportsInterfaceFunctionBase { }

    [Function("supportsInterface", "bool")]
    public class SupportsInterfaceFunctionBase : FunctionMessage
    {
        [Parameter("bytes4", "interfaceId", 1)]
        public virtual byte[] InterfaceId { get; set; }
    }

    public partial class StoreSetrecordEventDTO : StoreSetrecordEventDTOBase { }

    [Event("Store_SetRecord")]
    public class StoreSetrecordEventDTOBase : IEventDTO
    {
        [Parameter("bytes32", "tableId", 1, true)]
        public virtual byte[] TableId { get; set; }
        [Parameter("bytes32[]", "keyTuple", 2, false)]
        public virtual List<byte[]> KeyTuple { get; set; }
        [Parameter("bytes", "staticData", 3, false)]
        public virtual byte[] StaticData { get; set; }
        [Parameter("bytes32", "encodedLengths", 4, false)]
        public virtual byte[] EncodedLengths { get; set; }
        [Parameter("bytes", "dynamicData", 5, false)]
        public virtual byte[] DynamicData { get; set; }
    }

    public partial class StoreSplicestaticdataEventDTO : StoreSplicestaticdataEventDTOBase { }

    [Event("Store_SpliceStaticData")]
    public class StoreSplicestaticdataEventDTOBase : IEventDTO
    {
        [Parameter("bytes32", "tableId", 1, true)]
        public virtual byte[] TableId { get; set; }
        [Parameter("bytes32[]", "keyTuple", 2, false)]
        public virtual List<byte[]> KeyTuple { get; set; }
        [Parameter("uint48", "start", 3, false)]
        public virtual ulong Start { get; set; }
        [Parameter("bytes", "data", 4, false)]
        public virtual byte[] Data { get; set; }
    }

    public partial class FieldlayoutEmptyError : FieldlayoutEmptyErrorBase { }
    [Error("FieldLayout_Empty")]
    public class FieldlayoutEmptyErrorBase : IErrorDTO
    {
    }

    public partial class FieldlayoutInvalidstaticdatalengthError : FieldlayoutInvalidstaticdatalengthErrorBase { }

    [Error("FieldLayout_InvalidStaticDataLength")]
    public class FieldlayoutInvalidstaticdatalengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "staticDataLength", 1)]
        public virtual BigInteger StaticDataLength { get; set; }
        [Parameter("uint256", "computedStaticDataLength", 2)]
        public virtual BigInteger ComputedStaticDataLength { get; set; }
    }

    public partial class FieldlayoutStaticlengthdoesnotfitinawordError : FieldlayoutStaticlengthdoesnotfitinawordErrorBase { }

    [Error("FieldLayout_StaticLengthDoesNotFitInAWord")]
    public class FieldlayoutStaticlengthdoesnotfitinawordErrorBase : IErrorDTO
    {
        [Parameter("uint256", "index", 1)]
        public virtual BigInteger Index { get; set; }
    }

    public partial class FieldlayoutStaticlengthisnotzeroError : FieldlayoutStaticlengthisnotzeroErrorBase { }

    [Error("FieldLayout_StaticLengthIsNotZero")]
    public class FieldlayoutStaticlengthisnotzeroErrorBase : IErrorDTO
    {
        [Parameter("uint256", "index", 1)]
        public virtual BigInteger Index { get; set; }
    }

    public partial class FieldlayoutStaticlengthiszeroError : FieldlayoutStaticlengthiszeroErrorBase { }

    [Error("FieldLayout_StaticLengthIsZero")]
    public class FieldlayoutStaticlengthiszeroErrorBase : IErrorDTO
    {
        [Parameter("uint256", "index", 1)]
        public virtual BigInteger Index { get; set; }
    }

    public partial class FieldlayoutToomanydynamicfieldsError : FieldlayoutToomanydynamicfieldsErrorBase { }

    [Error("FieldLayout_TooManyDynamicFields")]
    public class FieldlayoutToomanydynamicfieldsErrorBase : IErrorDTO
    {
        [Parameter("uint256", "numFields", 1)]
        public virtual BigInteger NumFields { get; set; }
        [Parameter("uint256", "maxFields", 2)]
        public virtual BigInteger MaxFields { get; set; }
    }

    public partial class FieldlayoutToomanyfieldsError : FieldlayoutToomanyfieldsErrorBase { }

    [Error("FieldLayout_TooManyFields")]
    public class FieldlayoutToomanyfieldsErrorBase : IErrorDTO
    {
        [Parameter("uint256", "numFields", 1)]
        public virtual BigInteger NumFields { get; set; }
        [Parameter("uint256", "maxFields", 2)]
        public virtual BigInteger MaxFields { get; set; }
    }

    public partial class ModuleAlreadyinstalledError : ModuleAlreadyinstalledErrorBase { }
    [Error("Module_AlreadyInstalled")]
    public class ModuleAlreadyinstalledErrorBase : IErrorDTO
    {
    }

    public partial class ModuleMissingdependencyError : ModuleMissingdependencyErrorBase { }

    [Error("Module_MissingDependency")]
    public class ModuleMissingdependencyErrorBase : IErrorDTO
    {
        [Parameter("address", "dependency", 1)]
        public virtual string Dependency { get; set; }
    }

    public partial class ModuleNonrootinstallnotsupportedError : ModuleNonrootinstallnotsupportedErrorBase { }
    [Error("Module_NonRootInstallNotSupported")]
    public class ModuleNonrootinstallnotsupportedErrorBase : IErrorDTO
    {
    }

    public partial class ModuleRootinstallnotsupportedError : ModuleRootinstallnotsupportedErrorBase { }
    [Error("Module_RootInstallNotSupported")]
    public class ModuleRootinstallnotsupportedErrorBase : IErrorDTO
    {
    }

    public partial class SchemaInvalidlengthError : SchemaInvalidlengthErrorBase { }

    [Error("Schema_InvalidLength")]
    public class SchemaInvalidlengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "length", 1)]
        public virtual BigInteger Length { get; set; }
    }

    public partial class SchemaStatictypeafterdynamictypeError : SchemaStatictypeafterdynamictypeErrorBase { }
    [Error("Schema_StaticTypeAfterDynamicType")]
    public class SchemaStatictypeafterdynamictypeErrorBase : IErrorDTO
    {
    }

    public partial class SliceOutofboundsError : SliceOutofboundsErrorBase { }

    [Error("Slice_OutOfBounds")]
    public class SliceOutofboundsErrorBase : IErrorDTO
    {
        [Parameter("bytes", "data", 1)]
        public virtual byte[] Data { get; set; }
        [Parameter("uint256", "start", 2)]
        public virtual BigInteger Start { get; set; }
        [Parameter("uint256", "end", 3)]
        public virtual BigInteger End { get; set; }
    }

    public partial class StoreInvalidfieldnameslengthError : StoreInvalidfieldnameslengthErrorBase { }

    [Error("Store_InvalidFieldNamesLength")]
    public class StoreInvalidfieldnameslengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreInvalidkeynameslengthError : StoreInvalidkeynameslengthErrorBase { }

    [Error("Store_InvalidKeyNamesLength")]
    public class StoreInvalidkeynameslengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreInvalidresourcetypeError : StoreInvalidresourcetypeErrorBase { }

    [Error("Store_InvalidResourceType")]
    public class StoreInvalidresourcetypeErrorBase : IErrorDTO
    {
        [Parameter("bytes2", "expected", 1)]
        public virtual byte[] Expected { get; set; }
        [Parameter("bytes32", "resourceId", 2)]
        public virtual byte[] ResourceId { get; set; }
        [Parameter("string", "resourceIdString", 3)]
        public virtual string ResourceIdString { get; set; }
    }

    public partial class StoreInvalidstaticdatalengthError : StoreInvalidstaticdatalengthErrorBase { }

    [Error("Store_InvalidStaticDataLength")]
    public class StoreInvalidstaticdatalengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreInvalidvalueschemadynamiclengthError : StoreInvalidvalueschemadynamiclengthErrorBase { }

    [Error("Store_InvalidValueSchemaDynamicLength")]
    public class StoreInvalidvalueschemadynamiclengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreInvalidvalueschemalengthError : StoreInvalidvalueschemalengthErrorBase { }

    [Error("Store_InvalidValueSchemaLength")]
    public class StoreInvalidvalueschemalengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreInvalidvalueschemastaticlengthError : StoreInvalidvalueschemastaticlengthErrorBase { }

    [Error("Store_InvalidValueSchemaStaticLength")]
    public class StoreInvalidvalueschemastaticlengthErrorBase : IErrorDTO
    {
        [Parameter("uint256", "expected", 1)]
        public virtual BigInteger Expected { get; set; }
        [Parameter("uint256", "received", 2)]
        public virtual BigInteger Received { get; set; }
    }

    public partial class StoreTablealreadyexistsError : StoreTablealreadyexistsErrorBase { }

    [Error("Store_TableAlreadyExists")]
    public class StoreTablealreadyexistsErrorBase : IErrorDTO
    {
        [Parameter("bytes32", "tableId", 1)]
        public virtual byte[] TableId { get; set; }
        [Parameter("string", "tableIdString", 2)]
        public virtual string TableIdString { get; set; }
    }

    public partial class MsgSenderOutputDTO : MsgSenderOutputDTOBase { }

    [FunctionOutput]
    public class MsgSenderOutputDTOBase : IFunctionOutputDTO
    {
        [Parameter("address", "sender", 1)]
        public virtual string Sender { get; set; }
    }

    public partial class MsgValueOutputDTO : MsgValueOutputDTOBase { }

    [FunctionOutput]
    public class MsgValueOutputDTOBase : IFunctionOutputDTO
    {
        [Parameter("uint256", "value", 1)]
        public virtual BigInteger Value { get; set; }
    }

    public partial class WorldOutputDTO : WorldOutputDTOBase { }

    [FunctionOutput]
    public class WorldOutputDTOBase : IFunctionOutputDTO
    {
        [Parameter("address", "", 1)]
        public virtual string ReturnValue1 { get; set; }
    }



    public partial class SupportsInterfaceOutputDTO : SupportsInterfaceOutputDTOBase { }

    [FunctionOutput]
    public class SupportsInterfaceOutputDTOBase : IFunctionOutputDTO
    {
        [Parameter("bool", "", 1)]
        public virtual bool ReturnValue1 { get; set; }
    }
}
